package com.malou.server.seguridad.usuario;

import java.util.List;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.malou.client.seguridad.usuario.Privilegio;
import com.malou.client.seguridad.usuario.Rol;
import com.malou.client.seguridad.usuario.Usuario;
import com.malou.client.seguridad.usuario.UsuarioService;
import com.malou.client.util.MensajeData;


public class UsuarioServiceImpl extends RemoteServiceServlet implements
UsuarioService {

	private static final long serialVersionUID = 1L;

	@Override
	public Usuario getUsuario(Usuario user) {
		return Usuarios.getTreeUsuario(user);
	}

	@Override
	public MensajeData saveGroup(Usuario user) {
		MensajeData data = new MensajeData();
		data.guardado = true;
		
		if(!Usuarios.saveGroup(user)){
			data.guardado = false;
			data.errorTipo = Usuarios.errorTipo;
		}
		
		return data;
	}

	@Override
	public MensajeData deleteGroup(Integer id) {
		MensajeData data = new MensajeData();
		data.guardado = true;
		
		if(!Usuarios.deleteGroup(id)){
			data.guardado = false;
		}
		
		return data;
	}

	@Override
	public MensajeData saveUser(Usuario user) {
		MensajeData data = new MensajeData();
		data.guardado = true;
		
		if(!Usuarios.saveUser(user)){
			data.guardado = false;
			data.errorTipo = Usuarios.errorTipo;
		}		
		return data;
	}

	@Override
	public MensajeData deleteUser(Integer id, Integer rol_id) {
		MensajeData data = new MensajeData();
		data.guardado = true;
		
		if(!Usuarios.deleteUser(id, rol_id)){
			data.guardado = false;
		}
		
		return data;
	}	
	
	@Override
	public List<Rol> getRoles(Integer id){
		
		return Usuarios.getRoles(id);
	}

	@Override
	public MensajeData modificarRoles(Integer user_id, List<Integer> roles_id) {
		MensajeData data = new MensajeData();
		data.guardado = true;
		if(!Usuarios.modificarRoles(user_id, roles_id)){
			data.guardado = false;
		}
		return data;
	}

	@Override
	public List<Privilegio> getPrivilegios() {
		return Usuarios.getPrivilegios();
	}
}